//
//  QSMainTabBar.m
//  SinaWeiBo
//
//  Created by apple on 16/5/27.
//  Copyright © 2016年 apple. All rights reserved.
//

#import "QSMainTabBar.h"

@interface QSMainTabBar()

@end

@implementation QSMainTabBar

/**
 *  重写initWithFrame：方法
 */
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    
    // 设置UI
    [self setupUI];
    
    return self;
}

- (void)setupUI
{
    // 添加加号按钮
    [self addSubview:self.plusButton];
}

#pragma mark - 懒加载
/**
 *  创建加号按钮
 */
- (UIButton *)plusButton
{
    if (!_plusButton) {
        self.plusButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [self.plusButton setBackgroundImage:[UIImage imageNamed:@"tabbar_compose_button"] forState:UIControlStateNormal];
        [self.plusButton setBackgroundImage:[UIImage imageNamed:@"tabbar_compose_button_highlighted"] forState:UIControlStateHighlighted];
        
        [self.plusButton setImage:[UIImage imageNamed:@"tabbar_compose_icon_add"] forState:UIControlStateNormal];
        [self.plusButton setImage:[UIImage imageNamed:@"tabbar_compose_icon_add_highlighted"] forState:UIControlStateSelected];
        
        // 自适应图片大小（图片有多大，按钮就有多大）
        [self.plusButton sizeToFit];
    }
    
    return _plusButton;
}

/**
 *  对子控件进行重新布局
 */
- (void)layoutSubviews
{
    [super layoutSubviews];
    
    // 手动修改按钮的位置
    // tabBar的宽高
    CGFloat tbWidth = self.bounds.size.width;
    CGFloat tbHeight = self.bounds.size.height;
    
    // 定义按钮的x, y, w, h
    CGFloat btnX = 0;
    CGFloat btnY = 0;
    CGFloat btnW = tbWidth / (self.items.count + 1);
    CGFloat btnH = tbHeight;
    
    int i = 0;
    // 遍历所有子控件
    for (UIView *subView in self.subviews) {
        // 判断subView是否为UITabBarButton（tabBar原生的按钮类型为UITabBarButton）
        if ([subView isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
            // 修改子控件的frame
            btnX = i * btnW;
            subView.frame = CGRectMake(btnX, btnY, btnW, btnH);
            
            // 判断是否为第二个
            i += (i == 1 ? 2 : 1);
        }
    }
    
    // 设置加号按钮的frame
//    self.plusButton.frame = CGRectOffset(<#CGRect rect#>, <#CGFloat dx#>, <#CGFloat dy#>)
    self.plusButton.center = CGPointMake(tbWidth / 2, tbHeight * 0.3);
    
    // 让子控件置顶显示
    [self bringSubviewToFront:self.plusButton];
}
@end
